package com.marvels.financial.collection.dao;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.Page;
import com.marvels.financial.collection.dto.CollectListConditionDTO;
import com.marvels.financial.collection.dto.CollectListInfoDTO;
import com.marvels.financial.collection.dto.McfeOverdueCollectionDTO;
import com.marvels.financial.collection.dto.OnlineDeductionDto;
import com.marvels.financial.collection.dto.OutSideDownDTO;

public interface OverdueCollectMapper {
	
	/**
	 * 查询催收列表信息
	 * @param dto
	 * @return
	 */
	public Page<CollectListInfoDTO> collectList(CollectListConditionDTO dto);
	
	/**
	 * 查询催收统计信息
	 * @param dto
	 * @return
	 */
	public CollectListInfoDTO collectAmountStatic(CollectListConditionDTO dto);
	
	/**
	 * 线上代扣列表
	 * @param loanList
	 * @return
	 */
	public List<OnlineDeductionDto> onlineDeductionList(@Param("loanList") List<String> loanList);
	
	/**
	 * 通过overdueCode更新信息
	 * @param record
	 * @return
	 */
	int updateByOverdueCode(McfeOverdueCollectionDTO record);
	
	
	/**线下委外下载
	 * @param outside
	 * @return
	 */
	public List<OutSideDownDTO> downOutsideExcel(com.marvels.financial.collection.dto.CollectListConditionDTO conditionDTO);
	
	/**
	 * 修改转派催收人员
	 * @param record
	 * @return
	 */
	int updateTransferAssignee(McfeOverdueCollectionDTO record);
	
	
	/**
	 * 查询逾期短信信息
	 * @param loanId
	 * @return
	 */
	Map<String, Object> selectOverdueSms(@Param("loanId") String loanId);
	
	/**
	 * 分期时代扣列表
	 * @param loanList
	 * @return
	 */
	public List<OnlineDeductionDto> newOnlineDeductionList(@Param("loanList") List<String> loanList);
	
	
	/**
	 * 分期模式时查询催收列表信息
	 * @param dto
	 * @return
	 */
	public Page<CollectListInfoDTO> newCollectList(CollectListConditionDTO dto);
	
}
